"""
时间包datetime:日期与时间的结合体
"""
#获取当前时间
from datetime import datetime
print(datetime.now(),type(datetime.now()))
"""
或者
import datetime
datetime.datetime.now()
"""


#获取时间间隔
from datetime import timedelta #timedelta是函数
one_day = timedelta(days=1,seconds=0,minutes=0,hours=0,weeks=0,microseconds=0,milliseconds=0)
print('~~~',one_day,type(one_day))
now = datetime.now()
yesterday = now - one_day #直接让对象之间进行计算
print(yesterday,type(yesterday))

#将时间对象转成时间字符串
date = datetime.now()
str_date = date.strftime("%Y-%m-%d %H:%M:%S")
print(str_date,type(str_date))

#将字符串转成时间类型
str_date = '2019-10-12 11:26:30'
date_obj = datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S') #字符串一定要和格式符相匹配
print(date_obj,type(date_obj))

default_time = '2019 1 11 abc'
default_time_obj = datetime.strptime(default_time, '%Y %m %d abc')
print(default_time_obj,type(default_time_obj))

#datetime中datetime对象转成时间戳
datetime_timestamp = datetime.timestamp(datetime.now()) #不传参会报错
print('===',datetime_timestamp,type(datetime_timestamp))

#datetime中时间戳转成datetime对象
datetime_obj = datetime.fromtimestamp(datetime_timestamp)
print(datetime_obj,type(datetime_obj))


"""
time模块
"""

#时间戳timestamp
#1970年1月1日00时00分00秒至今的总秒数，float类型

#生成时间戳函数time
import time
timestamp = time.time()
print(timestamp,type(timestamp))

#获取本地时间函数localtime
time_obj = time.localtime(timestamp) #timestamp可不传，默认当前时间
print(time_obj,type(time_obj))


#暂停函数sleep
# time.sleep(10) #传入希望程序暂停的秒数

#time中的strftime和strptime
str_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
time_obj = time.strptime("2019-1-11", "%Y-%m-%d")
print(str_time,type(str_time))
print(time_obj,type(time_obj))


"""
os包
"""
#os的文件与目录函数介绍
import os
print(os.getcwd()) #返回当前的路径，返回值是字符串
print(os.listdir('D://code//python_study')) #返回指定路径下所有的文件或文件夹，返回的是列表
# os.makedirs('D://code//python_study//test//testmakedir') #创建多级文件夹，无返回值
# os.makedirs('test_mkdir//test1') #相对路径
# os.removedirs('test_new_del/11/22') #删除多级文件夹，目录无子文件
# os.rename('test_new_del/33/1.py', 'test_new_del/2.py') #给文件或文件夹改名,可以移动文件位置
# os.rmdir('D://code//python_study//test_new_del/test')  #只能删除空文件夹

#os.path模块常用方法
a = os.path.exists('D://code//python_study') #文件或路径是否存在，返回布尔类型
b = os.path.isdir('D://code//python_study') #是否是路径,找不到返回False
c = os.path.isabs('D://code//python_study') #是否是绝对路径,找不到返回False
d = os.path.isfile('D:\\code\\python_study') #是否是文件
str_join = os.path.join('D:\\','test1','test2') #路径字符串合并，自动补上路径中的斜杠,返回str
tuple_split = os.path.split('D:\\code\\a\\b\\c.py') #以最后一层和前面的路径切割开，返回元组
print(a,b,c,d,str_join,tuple_split)


"""
内置库：sys模块
"""
import sys

#常用方法
print('==========',sys.modules) #py启动时加载的模块
print(sys.path) #返回当前py的环境路径，不是执行脚本的位置
# sys.exit(0) #退出程序
print(sys.getdefaultencoding()) #获取系统编码
print(sys.platform) #返回系统平台
print(sys.version) #返回python版本
print(sys.argv) #程序外部获取参数,通过python命令+空格+python文件名+空格+参数2+空格+参数3...输入参数